var Crypto = require('@/js_sdk/cryptojs/cryptojs.js').Crypto;
import config from '@/config/index.js';
import utils from '@/utils/index.js';
import Vue from 'vue'
const store = {
	namespaced: true,
	state: {
		// UI信息
		uiInfo: {
			statusBarHeight: 0,
			titleBarHeight: 0,
			customNavBarHeight: 0,
		},

		// 最后一次请求服务器的响应日期时间
		serverDatetime: null,

		// 最后一次发送验证码的时间戳，10位秒数
		lastSendCaptchaTimestamp: 0,

		// 当前登录用户信息
		get userInfo() {
			// #ifdef MP-WEIXIN
			return utils.getStorageSync(`${__wxConfig.envVersion}-UINFO`);
			// #endif
			// #ifdef MP-ALIPAY
			return utils.getStorageSync(`ALIPAY-UINFO`);
			// #endif
		},
		set userInfo(value) {
			// #ifdef MP-WEIXIN
			uni.removeStorageSync(`${__wxConfig.envVersion}-UINFO`);
			if (value != null) {
				utils.setStorageSync(`${__wxConfig.envVersion}-UINFO`, value);
			}
			// #endif
			// #ifdef MP-ALIPAY
			uni.removeStorageSync(`ALIPAY-UINFO`);
			if (value != null) {
				utils.setStorageSync(`ALIPAY-UINFO`, value);
			}
			// #endif
		},

	},
	mutations: {
		// 设置UI信息
		setUiInfo(state, payload) {
			Vue.set(state, 'uiInfo', payload)
		},

		// 保存登录用户信息
		saveUserInfo(state, payload) {
			Vue.set(state, 'userInfo', payload)
		},

		// 删除登录用户信息
		removeUserInfo(state) {
			Vue.set(state, 'userInfo', null)
		},

		// 保存验证码最后一次发送成功的时间戳
		saveLastSendCaptchaTimestamp(state, payload) {
			Vue.set(state, 'lastSendCaptchaTimestamp', payload)
		},

		// 保存服务器响应时间
		saveServerDatetime(state, payload) {
			Vue.set(state, 'serverDatetime', payload)
		},

	},
	actions: {}
}

export default store
